
// cabecalho de declaracao 
#include "RXSwitch.h"
// biblioteca de leitura do receptor
#include <RCSwitch.h>
// convencoes
#define RCINTERRUPT 4 // interrupcao de recepcao pino 19 do Arduino Mega
// instancia do leitor
RCSwitch rcs;

//Variaveis para recebimento de comandos
int parametro1, parametro2;
//Variaveis para teste logicos das posiçoes referentes aos comandos
const int BIT_THROTTLE = B00001000;
const int BIT_YAW = B00000100;
const int BIT_ROLL = B00000001;
const int BIT_PITCH = B00000010;


void initRXSwitch() {
  rcs = RCSwitch();
  rcs.enableReceive(RCINTERRUPT);
  
  resetRcData();  
}

/*void resetRcData() {
  for (int i = 0; i < 8; i++) {
    rcData[i] = 1500;  
  } // 
}*/

void computeRXSwitch() {
  if (rcs.available()) {
    long pulso = rcs.getReceivedValue();
    
    //teste para identificar comando de ligar
    if(pulso == 33554432){
      //rcData[THROTTLE] = 1000;
      //rcData[YAW] = 2000;
    }
    //teste para identificar comando de desligar
    else if(pulso == 16777216){
      //rcData[THROTTLE] = 1000;
      //rcData[YAW] = 1000;
    }
    else{
      //descompactaçao de pulso em dois comandos: UP e DOWN
      parametro1 = (pulso >> (sizeof(long)/2 * 8));
      parametro2  = ((pulso << (sizeof(long)/2 * 8)) >> (sizeof(long)/2 * 8));

    }
  }
  rcs.resetAvailable();
}

void setup(){
  initRXSwitch();
  Serial.begin(9600);
}



void loop(){
  computeRXSwitch();
}
